package main

import (
	"fmt"
	"sync"
)

//func main() {
//	x := []string{"a", "b", "c", "d", "e", "f"}
//	for _, v := range x {
//		fmt.Print(v)
//	}
//}

//func main() {
//	strs := []string{"a", "b", "c", "d", "e", "f", "g"}
//	for _, str := range strs {
//		go func() {
//			time.Sleep(1 * time.Second)
//			fmt.Println(str)
//		}()
//	}
//	time.Sleep(10 * time.Second)
//}

func main() {
	var wg sync.WaitGroup
	var mu sync.Mutex
	//counter := 1 // 计数器，从1开始

	for i := 1; i <= 10; i++ {
		wg.Add(1)
		go func(num int) {
			defer wg.Done()
			mu.Lock() // 锁定以确保顺序输出
			fmt.Println(num)
			mu.Unlock() // 解锁
		}(i)
	}

	wg.Wait() // 等待所有 goroutine 完成
}
